# -*- coding: utf-8 -*-
'''
 使用while和for…in两个循环分别输出四种九九乘法表效果（共计8个）。
 while：
            whileLeftInc()      右上三角输出 
            whileRightDes()     左下三角输出
            whileReftInc()      左上三角输出
            whileLeftDes()      右下三角输出
 for...in
            forLeftInc()        右上三角输出 
            forRightDes()       左下三角输出
            forReftInc()        左上三角输出
            forLeftDes()        右下三角输出
'''
#while循环模式
#左上三角输出
def whileRightDes():
    print("左上三角输出")
    j=1
    while j<=9:
        i=1
        while i<=j:
            print("{}*{}={:<4}".format(i,j,i*j),end=" ")
            i+=1
        j+=1
        print("")
    

#左下三角输出
def whileLeftDes():
    print("左下三角输出")
    j=9
    while j>=1:
        i=1
        while i<=j:
            print("{}*{}={:<4}".format(i,j,i*j),end=" ")
            i+=1
        j-=1
        print("")

#右上三角输出
def whileLeftInc():
    print("右上三角输出")
    i = 1
    while i <= 9:
        k = 1
        while k <= 9 - i:         #判断应该用多少个空格来填充前面的空白
            print(end = '         ')
            k += 1
        j=i
        while j >= 1:
            print("{}*{}={:<4}".format(j,i,i*j),end=" ")
            j-=1
        print()
        i+=1
        
#右下三角输出        
def whileReftInc():
    print("右下三角输出")
    i = 9
    while i >= 1:
        k = 9
        while k >= i+1:         #判断应该用多少个空格来填充后面的空白
            print(end = '         ')
            k -= 1
        j=i
        while j >= 1:
            print("{}*{}={:<4}".format(j,i,i*j),end=" ")
            j-=1
        print()
        i-=1


#for...in循环模式
#左上三角输出
def forRightDes():
    print("左上三角输出")
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={:<4}".format(j,i,i*j),end=" ")
        print()
        

#左下三角输出
def forRightInc():
    print("左下三角输出")
    for i in range(9,0,-1):
        for j in range(1,i+1):
            print("{}*{}={:<4}".format(j,i,i*j),end=" ")
        print()

#右上三角形输出
def forLeftDes():
    print("右上三角输出")
    for i in range(1,10):
        for k in range(1,10-i):
            print(end="         ")
        for j in range(i,0,-1):
            print("{}*{}={:<4}".format(j,i,i*j),end=" ")
        print()
        
#右下三角形输出
def forLeftInc():
    print("右下三角输出")
    for i in range(9,0,-1):
        for k in range(1,10-i):
            print(end="         ")
        for j in range(i,0,-1):
            print("{}*{}={:<4}".format(j,i,i*j),end=" ")
        print()
        
print("以下为while循环输出")
whileLeftInc()       
whileRightDes()
whileReftInc()
whileLeftDes()

print("以下为for...in循环输出")
forRightInc()       
forRightDes()
forLeftInc()
forLeftDes()
